Skip to content

Conversation

@cuviper
Copy link
Member

@cuviper cuviper commented Nov 20, 2025

This is another step toward unspecializing Copy.

See also #135634 and rust-lang/hashbrown#662

r? @Amanieu
cc @joboet

@rustbot
Copy link
Collaborator

rustbot commented Nov 20, 2025

The list of allowed third-party dependencies may have been modified! You must ensure that any new dependencies have compatible licenses before merging.

cc @davidtwco, @wesleywiser

These commits modify the library/Cargo.lock file. Unintentional changes to library/Cargo.lock can be introduced when switching branches and rebasing PRs.

If this was unintentional then you should revert the changes before this PR is merged.
Otherwise, you can ignore this comment.

@rustbot rustbot added A-tidy Area: The tidy tool S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-bootstrap Relevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap) labels Nov 20, 2025
@rustbot rustbot added the T-libs Relevant to the library team, which will review and decide on the PR/issue. label Nov 20, 2025
@cuviper
Copy link
Member Author

cuviper commented Nov 20, 2025

Side note: I would also like to upgrade the hashbrown dependency of the compiler, along with indexmap v2.12.1 using its new bucket API, but we can't do that until TrivialClone is in stage0 (beta).

@rust-log-analyzer

This comment has been minimized.

@cuviper
Copy link
Member Author

cuviper commented Nov 20, 2025

Oh, it's more tangled than I realized, because the compiler's hashbrown/nightly still needs to compile in later stages as well. So we can't fully remove the Copy specialization until TrivialClone is in stage0 and we upgrade them all.

So I'll drop that commit here.

@cuviper cuviper force-pushed the library-hashbrown-0.16.1 branch from eb5fdd9 to 3a56d49 Compare November 20, 2025 19:38
@cuviper cuviper changed the title library: upgrade to hashbrown v0.16.1, finishing Copy unspecialization library: upgrade to hashbrown v0.16.1 Nov 20, 2025
@Amanieu
Copy link
Member

Amanieu commented Nov 20, 2025

Hashbrown updates are always perf-sensitive.

@bors try
@rust-timer queue

@rust-timer

This comment has been minimized.

@rust-bors

This comment has been minimized.

@rustbot rustbot added the S-waiting-on-perf Status: Waiting on a perf run to be completed. label Nov 20, 2025
@rust-bors
Copy link

rust-bors bot commented Nov 21, 2025

💥 Test timed out after 21600s

@cuviper
Copy link
Member Author

cuviper commented Nov 21, 2025

@bors try

rust-bors bot added a commit that referenced this pull request Nov 21, 2025
@rust-bors

This comment has been minimized.

@rust-bors
Copy link

rust-bors bot commented Nov 21, 2025

☀️ Try build successful (CI)
Build commit: 4ae2860 (4ae2860d284fdb187a2551eb4a3625226eaac4b3, parent: e22dab387f6b4f6a87dfc54ac2f6013dddb41e68)

@rust-timer

This comment has been minimized.

@rust-timer
Copy link
Collaborator

Finished benchmarking commit (4ae2860): comparison URL.

Overall result: ❌✅ regressions and improvements - please read the text below

Benchmarking this pull request means it may be perf-sensitive – we'll automatically label it not fit for rolling up. You can override this, but we strongly advise not to, due to possible changes in compiler perf.

Next Steps: If you can justify the regressions found in this try perf run, please do so in sufficient writing along with @rustbot label: +perf-regression-triaged. If not, please fix the regressions and do another perf run. If its results are neutral or positive, the label will be automatically removed.

@bors rollup=never
@rustbot label: -S-waiting-on-perf +perf-regression

Instruction count

Our most reliable metric. Used to determine the overall result above. However, even this metric can be noisy.

mean range count
Regressions ❌
(primary)
0.8% [0.3%, 1.3%] 2
Regressions ❌
(secondary)
0.1% [0.1%, 0.1%] 1
Improvements ✅
(primary)
-0.2% [-0.3%, -0.1%] 3
Improvements ✅
(secondary)
-0.4% [-0.5%, -0.2%] 24
All ❌✅ (primary) 0.2% [-0.3%, 1.3%] 5

Max RSS (memory usage)

Results (primary 1.0%, secondary -0.2%)

A less reliable metric. May be of interest, but not used to determine the overall result above.

mean range count
Regressions ❌
(primary)
3.2% [1.7%, 6.0%] 3
Regressions ❌
(secondary)
1.0% [1.0%, 1.0%] 1
Improvements ✅
(primary)
-5.6% [-5.6%, -5.6%] 1
Improvements ✅
(secondary)
-1.4% [-1.4%, -1.4%] 1
All ❌✅ (primary) 1.0% [-5.6%, 6.0%] 4

Cycles

This benchmark run did not return any relevant results for this metric.

Binary size

Results (primary 0.0%, secondary -0.3%)

A less reliable metric. May be of interest, but not used to determine the overall result above.

mean range count
Regressions ❌
(primary)
0.1% [0.0%, 0.3%] 24
Regressions ❌
(secondary)
- - 0
Improvements ✅
(primary)
-0.3% [-0.5%, -0.1%] 4
Improvements ✅
(secondary)
-0.3% [-0.3%, -0.3%] 1
All ❌✅ (primary) 0.0% [-0.5%, 0.3%] 28

Bootstrap: 473.456s -> 471.73s (-0.36%)
Artifact size: 388.90 MiB -> 388.82 MiB (-0.02%)

@rustbot rustbot added perf-regression Performance regression. and removed S-waiting-on-perf Status: Waiting on a perf run to be completed. labels Nov 21, 2025
@Amanieu
Copy link
Member

Amanieu commented Nov 21, 2025

Seems to mostly be an improvement.

@bors r+

@bors
Copy link
Collaborator

bors commented Nov 21, 2025

📌 Commit 3a56d49 has been approved by Amanieu

It is now in the queue for this repository.

@bors bors added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Nov 21, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

A-tidy Area: The tidy tool perf-regression Performance regression. S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. T-bootstrap Relevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap) T-libs Relevant to the library team, which will review and decide on the PR/issue.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants